其他
GitHub星数1.3W!五分钟带你搞定Bash脚本使用技巧
点击上方“民工哥技术之路”选择“置顶或星标”
每天10点为你分享不一样的干货
删除字符串前后空格:
trim_string() {
# Usage: trim_string " example string "
: "${1#"${1%%[![:space:]]*}"}"
: "${_%"${_##*[![:space:]]}"}"
printf '%s\n' "$_"
}
trim_string " Hello, World "
Hello, World
name=" John Black "
trim_string "$name"
John Black
regex() {
# Usage: regex "string" "regex"
[[ $1 =~ $2 ]] && printf '%s\n' "${BASH_REMATCH[1]}"
}
$ # Trim leading white-space.
$ regex ' hello' '^\s*(.*)'
hello
$ # Validate a hex color.
$ regex "#FFFFFF" '^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$'
#FFFFFF
$ # Validate a hex color (invalid).
$ regex "red" '^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$'
# no output (invalid)
脚本的示例用法:
is_hex_color() {
if [[ $1 =~ ^(#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}))$ ]]; then
printf '%s\n' "${BASH_REMATCH[1]}"
else
printf '%s\n' "error: $1 is an invalid color."
return 1
fi
}
read -r color
is_hex_color "$color" || color="#FFFFFF"
# Do stuff.
remove_array_dups() {
# Usage: remove_array_dups "array"
declare -A tmp_array
for i in "$@"; do
[[ $i ]] && IFS=" " tmp_array["${i:- }"]=1
done
printf '%s\n' "${!tmp_array[@]}"
}
remove_array_dups 1 1 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5
1
2
3
4
5
arr=(red red green blue blue)
remove_array_dups "${arr[@]}"
red
green
blue
关于作者
Dylan Araps是来自澳大利亚墨尔本的开源开发人员,从小就对开源产生了极大的热情,多年来开源了许多项目,14岁,就离开了学校,开始专注于 Linux、编程和其他相关技能的学习,Dylan Araps开源的项目得到了广泛的应用,并在Unix和Linux社区中得到广泛关注。
开源最前线(ID:OpenSourceTop) 综合整理
综合自:https://leanpub.com/u/dylanaraps、https://leanpub.com/u/dylanaraps
关注民工哥技术之路微信公众号,在后台回复关键字:1024 可以获取一份最新整理的技术干货。
-近期干货分享 -
微信扫描二维码关注民工哥技术之路
公众号后台回复「目录」可以查看公众号文章目录大全,回复「加群」可以加入读者技术交流群,与大家一起交流。
点击【阅读原文】和民工哥一起学技术、搞事情~~